/*1 new class—2登录按钮绑定点击事件，获取form中input框的数据（去除空格）—2.1进行非空验证，如果为空进行提示并return
    2.2 发送ajax-post请求发送账号密码——2.3解构赋值获取响应中的status和data——2.4判断data.code和status，否则返回——
    2.5 将响应中的token和用户ID（加入购物车时会用到id）存到浏览器——
    2.6 判断returnUrl是否有值，为空则跳回到主页，有值则跳到指定页面——
 */

class Login {
  returnUrl = "";
  constructor() {
    let param = location.search;
    if (param) {
      param = param.split("rl=")[1];
      this.returnUrl = param;
    }
    //登录按钮绑定事件
    this.$(".over").addEventListener("click", this.checkLogin);
  }
  //*************登录的方法***************
  checkLogin = () => {
    let username = this.$(".username").value.trim();
    let password = this.$(".password").value.trim();
    if (!username || !password) {
      layer.msg("用户名或密码不能为空");
      return;
    }
    //设置编码格式
    axios.defaults.headers["Content-Type"] =
      "application/x-www-form-urlencoded";

    //请求数据
    //以字符串而不是json
    let param = `username=${username}&password=${password}`;
    axios
      .post("http://localhost:8888/users/login", param)
      .then(({ status, data }) => {
        // console.log(status, data);
        //判断状态
        if (status != 200 || data.code != 1) {
          layer.msg("登陆失败,用户名或者密码错误");
          return;
        }
        //将token和用户id存到浏览器
        localStorage.setItem("token", data.token);
        localStorage.setItem("user_id", data.user.id);
        // 判断returnUrl是否为空
        this.returnUrl
          ? location.assign(this.returnUrl)
          : location.assign("./index.html");
      });

    // console.log(username);
  };

  //获取节点的方法
  $(ele) {
    let res = document.querySelectorAll(ele);
    return res.length == 1 ? res[0] : res;
  }
}

new Login();
